package com.ruoyi.qms.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mysql.cj.x.protobuf.MysqlxDatatypes;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 质量检查对象 qms_qc
 * 
 * @author ruoyi
 * @date 2021-11-04
 */
public class QmsQc extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** 物料名称 */
    @Excel(name = "物料名称")
    private String itemName;
    /** 数量 */
    @Excel(name = "数量")
    private Long taskQty;
    /** 工序类型 */
    @Excel(name = "工序类型")
    private String  mesDictProcessType;
    /** 工序名称 */
    @Excel(name = "工序名称")
    private String  mesDictProcessName;
    /** 工序符号 */
    @Excel(name = "工序符号")
    private String  mesDictProcessCode;
    /** 计划数量（初始值为生产任务 mes_tasks.task_qty 中的数量 ） */
    @Excel(name = "计划数量", readConverterExp = "初=始值为生产任务,m=es_process_exec.task_qty,中=的数量")
    private BigDecimal planQty;
    /** 完工数量 */
    @Excel(name = "完工数量")
    private BigDecimal doneQty;
    /** 计划班组 */
    @Excel(name = "计划班组")
    private String planDeptName;
    /** 实际班组 */
    @Excel(name = "实际班组")
    private String actualDeptName;
    /** 计划负责人 */
    @Excel(name = "计划负责人")
    private String planNickName;
    /** 实际负责人 */
    @Excel(name = "实际负责人")
    private String actualNickName;

    /** 汇报号 */
    @Excel(name = "汇报号")
    private String doneDocNum;
    /** 计划完工时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划完工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planDtDone;
    /** 计划开始时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planDtStart;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dtStart;

    /** 完工时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dtDone;

    /** 主键 */
    private String qcUuid;

    /** 关联完工汇报uuid */
    @Excel(name = "关联完工汇报uuid")
    private String fkJobDoneUuid;

    /** 质检类型（字典表） */
    @Excel(name = "质检类型", readConverterExp = "字=典表")
    private String qmsDictQcType;

    /** 检查数量 */
    @Excel(name = "检查数量")
    private BigDecimal qcQuantity;

    /** 不合格数量 */
    @Excel(name = "不合格数量")
    private BigDecimal failQuantity;

    /** 是否加入不合格品管理（字典表） */
    @Excel(name = "是否加入不合格品管理", readConverterExp = "字=典表")
    private String sysYesNoToFailList;


    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date qcDt;

    /** 质检员(关联用户表) */
    @Excel(name = "质检员(关联用户表)")
    private Long fkUserIdQc;

    /** 质检结果（字典表） */
    @Excel(name = "质检结果", readConverterExp = "字=典表")
    private String qmsDictQcResult;

    /** 备注 */
    @Excel(name = "备注")
    private String qcNote;

    /** 状态（正常、停用，字典表） */
    @Excel(name = "状态", readConverterExp = "正=常、停用，字典表")
    private String sysNormalDisable;

    /** 单据标题 */
    @Excel(name = "单据标题")
    private String docTitle;

    /** 单据编号 */
    @Excel(name = "单据编号")
    private String docNum;

    /** 质检时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "单据时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date docDt;

    /** 备注 */
    @Excel(name = "备注")
    private String docNote;

    /** 经办人ID（用户表ID） */
    @Excel(name = "经办人ID", readConverterExp = "用=户表ID")
    private Long fkAttentionUserId;

    /** 审核人（用户表ID） */
    @Excel(name = "审核人", readConverterExp = "用=户表ID")
    private Long fkConfirmUserId;

    /** 审核人（用户表ID） */
    @Excel(name = "审核人", readConverterExp = "用=户表ID")
    private String confirmUserName;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date confirmDt;

    /** 审核结果（字典表） */
    @Excel(name = "审核结果", readConverterExp = "字=典表")
    private String oaDictConfirmStatus;

    /** 审核意见 */
    @Excel(name = "审核意见")
    private String confirmNote;

    private String attentionUserName;
    private String wmsDictMeasuringUnit;
    private String processContent;
    private String itemSpecification;
    private BigDecimal qcPassQty;
    private BigDecimal poorQty;
    private BigDecimal wasteQty;

    public String getItemSpecification() {
        return itemSpecification;
    }

    public void setItemSpecification(String itemSpecification) {
        this.itemSpecification = itemSpecification;
    }

    public BigDecimal getQcPassQty() {
        return qcPassQty;
    }

    public void setQcPassQty(BigDecimal qcPassQty) {
        this.qcPassQty = qcPassQty;
    }

    public BigDecimal getPoorQty() {
        return poorQty;
    }

    public void setPoorQty(BigDecimal poorQty) {
        this.poorQty = poorQty;
    }

    public BigDecimal getWasteQty() {
        return wasteQty;
    }

    public void setWasteQty(BigDecimal wasteQty) {
        this.wasteQty = wasteQty;
    }

    public String getProcessContent() {
        return processContent;
    }

    public void setProcessContent(String processContent) {
        this.processContent = processContent;
    }

    public String getWmsDictMeasuringUnit() {
        return wmsDictMeasuringUnit;
    }

    public void setWmsDictMeasuringUnit(String wmsDictMeasuringUnit) {
        this.wmsDictMeasuringUnit = wmsDictMeasuringUnit;
    }

    private BigDecimal percentOfPass;

    public String getAttentionUserName() {
        return attentionUserName;
    }

    public void setAttentionUserName(String attentionUserName) {
        this.attentionUserName = attentionUserName;
    }

    public BigDecimal getPercentOfPass() {
        return percentOfPass;
    }

    public void setPercentOfPass(BigDecimal percentOfPass) {
        this.percentOfPass = percentOfPass;
    }

    public String getDoneDocNum() {
        return doneDocNum;
    }

    public void setDoneDocNum(String doneDocNum) {
        this.doneDocNum = doneDocNum;
    }

    @Override
    public String getItemName() {
        return itemName;
    }

    @Override
    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    public String getConfirmUserName() {
        return confirmUserName;
    }

    public void setConfirmUserName(String confirmUserName) {
        this.confirmUserName = confirmUserName;
    }

    public Long getTaskQty() {
        return taskQty;
    }

    public void setTaskQty(Long taskQty) {
        this.taskQty = taskQty;
    }

    public String getMesDictProcessType() {
        return mesDictProcessType;
    }

    public void setMesDictProcessType(String mesDictProcessType) {
        this.mesDictProcessType = mesDictProcessType;
    }

    public String getMesDictProcessName() {
        return mesDictProcessName;
    }

    public void setMesDictProcessName(String mesDictProcessName) {
        this.mesDictProcessName = mesDictProcessName;
    }

    public String getMesDictProcessCode() {
        return mesDictProcessCode;
    }

    public void setMesDictProcessCode(String mesDictProcessCode) {
        this.mesDictProcessCode = mesDictProcessCode;
    }

    public BigDecimal getPlanQty() {
        return planQty;
    }

    public void setPlanQty(BigDecimal planQty) {
        this.planQty = planQty;
    }

    public BigDecimal getDoneQty() {
        return doneQty;
    }

    public void setDoneQty(BigDecimal doneQty) {
        this.doneQty = doneQty;
    }

    public String getPlanDeptName() {
        return planDeptName;
    }

    public void setPlanDeptName(String planDeptName) {
        this.planDeptName = planDeptName;
    }

    public String getActualDeptName() {
        return actualDeptName;
    }

    public void setActualDeptName(String actualDeptName) {
        this.actualDeptName = actualDeptName;
    }

    public String getPlanNickName() {
        return planNickName;
    }

    public void setPlanNickName(String planNickName) {
        this.planNickName = planNickName;
    }

    public String getActualNickName() {
        return actualNickName;
    }

    public void setActualNickName(String actualNickName) {
        this.actualNickName = actualNickName;
    }

    public Date getPlanDtStart() {
        return planDtStart;
    }

    public void setPlanDtStart(Date planDtStart) {
        this.planDtStart = planDtStart;
    }

    public Date getPlanDtDone() {
        return planDtDone;
    }

    public void setPlanDtDone(Date planDtDone) {
        this.planDtDone = planDtDone;
    }

    public Date getDtStart() {
        return dtStart;
    }

    public void setDtStart(Date dtStart) {
        this.dtStart = dtStart;
    }

    public Date getDtDone() {
        return dtDone;
    }

    public void setDtDone(Date dtDone) {
        this.dtDone = dtDone;
    }



    public void setQcUuid(String qcUuid) 
    {
        this.qcUuid = qcUuid;
    }

    public String getQcUuid() 
    {
        return qcUuid;
    }

    public String getFkJobDoneUuid() {
        return fkJobDoneUuid;
    }

    public void setFkJobDoneUuid(String fkJobDoneUuid) {
        this.fkJobDoneUuid = fkJobDoneUuid;
    }

    public void setQmsDictQcType(String qmsDictQcType)
    {
        this.qmsDictQcType = qmsDictQcType;
    }

    public String getQmsDictQcType() 
    {
        return qmsDictQcType;
    }
    public void setQcQuantity(BigDecimal qcQuantity) 
    {
        this.qcQuantity = qcQuantity;
    }

    public BigDecimal getQcQuantity() 
    {
        return qcQuantity;
    }
    public void setFailQuantity(BigDecimal failQuantity) 
    {
        this.failQuantity = failQuantity;
    }

    public BigDecimal getFailQuantity() 
    {
        return failQuantity;
    }
    public void setSysYesNoToFailList(String sysYesNoToFailList) 
    {
        this.sysYesNoToFailList = sysYesNoToFailList;
    }

    public String getSysYesNoToFailList() 
    {
        return sysYesNoToFailList;
    }
    public void setQcDt(Date qcDt) 
    {
        this.qcDt = qcDt;
    }

    public Date getQcDt() 
    {
        return qcDt;
    }
    public void setFkUserIdQc(Long fkUserIdQc) 
    {
        this.fkUserIdQc = fkUserIdQc;
    }

    public Long getFkUserIdQc() 
    {
        return fkUserIdQc;
    }
    public void setQmsDictQcResult(String qmsDictQcResult) 
    {
        this.qmsDictQcResult = qmsDictQcResult;
    }

    public String getQmsDictQcResult() 
    {
        return qmsDictQcResult;
    }
    public void setQcNote(String qcNote) 
    {
        this.qcNote = qcNote;
    }

    public String getQcNote() 
    {
        return qcNote;
    }

    public void setFkConfirmUserId(Long fkConfirmUserId) 
    {
        this.fkConfirmUserId = fkConfirmUserId;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("qcUuid", getQcUuid())
            .append("qmsDictQcType", getQmsDictQcType())
            .append("qcQuantity", getQcQuantity())
            .append("failQuantity", getFailQuantity())
            .append("sysYesNoToFailList", getSysYesNoToFailList())
            .append("qcDt", getQcDt())
            .append("fkUserIdQc", getFkUserIdQc())
            .append("qmsDictQcResult", getQmsDictQcResult())
            .append("qcNote", getQcNote())
            .append("sysNormalDisable", getSysNormalDisable())
            .append("docTitle", getDocTitle())
            .append("docNum", getDocNum())
            .append("docDt", getDocDt())
            .append("docNote", getDocNote())
            .append("fkAttentionUserId", getFkAttentionUserId())
            .append("fkConfirmUserId", getFkConfirmUserId())
            .append("confirmDt", getConfirmDt())
            .append("oaDictConfirmStatus", getOaDictConfirmStatus())
            .append("confirmNote", getConfirmNote())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
